-- 设置接口访问频率限制的参数
local key = KEYS[1]
local maxSize = tonumber(ARGV[1]) -- 最大访问数量

-- 构造 Redis 中存储用户访问次数的键名
local accessKey = "short-link:all-flow-risk-control:" .. key

-- 获取集合中的数量
local size = redis.call('SCARD', accessKey)

-- 证明没有人 无需判断该元素是否在里面
if size == nil then
    -- 直接添加即可
    redis.call('SADD',accessKey,key)
    return 0;
end

-- 集合已满 添加失败
if size == maxSize then
    return 1;
end

-- 判断是否已在队列中
local isMember = redis.call('SISMEMBER', accessKey, key)

-- 存在 所以添加失败
if isMember == 1 then
    return 1;
end

redis.call('SADD',accessKey,key)

return 0;